######################
#  Replication code for 'Mediating the Electoral Connection', forthcoming in the JOP
#  John Henderson and John Brooks
#  12/7/2015    
######################    

# figureI-analysis.R
#  :: runs data analysis to produce the balance plot in figure I

rm(list=ls())
setwd('~/Dropbox/rainReplication')

for(fes.type in 2:3){ 
	for(non.missings in c(0,4)){

source('prelimMain.R')    

covs_none$rain_weekend_next=covs$rain_weekend_next
covs_none$rain_day_next=covs$rain_day_next
covs=covs_none

covs_none$'as.factor(fe_id_num)'=covs$'as.factor(fe_id_num)'
  
# add additional covariates to check balance on      
if(non.missings==4){

attach(rain_data)  
prior_obs=rain_data$prior_obs

d_inc_prv=d_inc[prior_obs]
dist_prev_prv=dist_prev[prior_obs]
midterm_prv=midterm[prior_obs]  
pres_party_prv=pres_party[prior_obs] 
black_prv=black[prior_obs] 
construction_prv=construction[prior_obs] 
educ_prv=educ[prior_obs] 
minc_prv=minc[prior_obs] 
farmer_prv=farmer[prior_obs] 
forborn_prv=forborn[prior_obs]
gvtwkr_prv=gvtwkr[prior_obs] 
manuf_prv=manuf[prior_obs] 
pop_prv=pop[prior_obs] 
unempld_prv=unempld[prior_obs] 
urban_prv=urban[prior_obs] 
retail_prv=retail[prior_obs] 
sos_prv=sos[prior_obs] 
gov_prv=gov[prior_obs] 
redistricted_prv=redistricted[prior_obs] 
comp_cq_prv=comp_cq[prior_obs]         

rain_day_prevs=rain_day1[prior_obs]
rain_weekend_prevs=rain_weekend1[prior_obs]

rain_day_prev=rain_day[prior_obs]
rain_weekend_prev=rain_weekend[prior_obs]

d_inc_prv_prv=d_inc_prv[prior_obs]
dist_prev_prv_prv=dist_prev_prv[prior_obs]
midterm_prv_prv=midterm_prv[prior_obs]  
pres_party_prv_prv=pres_party_prv[prior_obs] 
black_prv_prv=black_prv[prior_obs] 
construction_prv_prv=construction_prv[prior_obs] 
educ_prv_prv=educ_prv[prior_obs] 
minc_prv_prv=minc_prv[prior_obs] 
farmer_prv_prv=farmer_prv[prior_obs] 
forborn_prv_prv=forborn_prv[prior_obs]
gvtwkr_prv_prv=gvtwkr_prv[prior_obs] 
manuf_prv_prv=manuf_prv[prior_obs] 
pop_prv_prv=pop_prv[prior_obs] 
unempld_prv_prv=unempld_prv[prior_obs] 
urban_prv_prv=urban_prv[prior_obs] 
retail_prv_prv=retail_prv[prior_obs] 
sos_prv_prv=sos_prv[prior_obs] 
gov_prv_prv=gov_prv[prior_obs] 
redistricted_prv_prv=redistricted_prv[prior_obs] 
comp_cq_prv_prv=comp_cq_prv[prior_obs]

detach(rain_data)
} else if(non.missings==0){  

attach(rain_data)  	  
ndex=rain_data$ndex

d_inc_prv=d_inc[ndex]
dist_prev_prv=dist_prev[ndex]
midterm_prv=midterm[ndex]  
pres_party_prv=pres_party[ndex] 
black_prv=black[ndex] 
construction_prv=construction[ndex] 
educ_prv=educ[ndex] 
minc_prv=minc[ndex] 
farmer_prv=farmer[ndex] 
forborn_prv=forborn[ndex]
gvtwkr_prv=gvtwkr[ndex] 
manuf_prv=manuf[ndex] 
pop_prv=pop[ndex] 
unempld_prv=unempld[ndex] 
urban_prv=urban[ndex] 
retail_prv=retail[ndex] 
sos_prv=sos[ndex] 
gov_prv=gov[ndex] 
redistricted_prv=redistricted[ndex] 
comp_cq_prv=comp_cq[ndex] 

d_inc_prv_prv=d_inc_prv[ndex]
dist_prev_prv_prv=dist_prev_prv[ndex]
midterm_prv_prv=midterm_prv[ndex]  
pres_party_prv_prv=pres_party_prv[ndex] 
black_prv_prv=black_prv[ndex] 
construction_prv_prv=construction_prv[ndex] 
educ_prv_prv=educ_prv[ndex] 
minc_prv_prv=minc_prv[ndex] 
farmer_prv_prv=farmer_prv[ndex] 
forborn_prv_prv=forborn_prv[ndex]
gvtwkr_prv_prv=gvtwkr_prv[ndex] 
manuf_prv_prv=manuf_prv[ndex] 
pop_prv_prv=pop_prv[ndex] 
unempld_prv_prv=unempld_prv[ndex] 
urban_prv_prv=urban_prv[ndex] 
retail_prv_prv=retail_prv[ndex] 
sos_prv_prv=sos_prv[ndex] 
gov_prv_prv=gov_prv[ndex] 
redistricted_prv_prv=redistricted_prv[ndex] 
comp_cq_prv_prv=comp_cq_prv[ndex]             

rain_day_prevs=rain_day1[ndex]
rain_weekend_prevs=rain_weekend1[ndex]
                                      
rain_day_prev=rain_day[ndex]
rain_weekend_prev=rain_weekend[ndex]

detach(rain_data)
}            

covs=cbind(covs,d_inc_prv,dist_prev_prv,midterm_prv,pres_party_prv,black_prv,construction_prv,educ_prv,minc_prv,
		   farmer_prv,forborn_prv,gvtwkr_prv,manuf_prv,pop_prv,unempld_prv,urban_prv,retail_prv,sos_prv,gov_prv,
		   redistricted_prv,comp_cq_prv,
			d_inc_prv_prv,dist_prev_prv_prv,midterm_prv_prv,pres_party_prv_prv,
		    black_prv_prv,construction_prv_prv,educ_prv_prv,minc_prv_prv,farmer_prv_prv,forborn_prv_prv,gvtwkr_prv_prv,
		    manuf_prv_prv,pop_prv_prv,unempld_prv_prv,urban_prv_prv,retail_prv_prv,sos_prv_prv,gov_prv_prv,
		    redistricted_prv_prv,comp_cq_prv_prv,
		   rain_day_prevs,rain_weekend_prevs
)  
rm(d_inc_prv,dist_prev_prv,midterm_prv,pres_party_prv,black_prv,construction_prv,educ_prv,minc_prv,
		   farmer_prv,forborn_prv,gvtwkr_prv,manuf_prv,pop_prv,unempld_prv,urban_prv,retail_prv,sos_prv,gov_prv,
		   redistricted_prv,comp_cq_prv,
			d_inc_prv_prv,dist_prev_prv_prv,midterm_prv_prv,pres_party_prv_prv,
		    black_prv_prv,construction_prv_prv,educ_prv_prv,minc_prv_prv,farmer_prv_prv,forborn_prv_prv,gvtwkr_prv_prv,
		    manuf_prv_prv,pop_prv_prv,unempld_prv_prv,urban_prv_prv,retail_prv_prv,sos_prv_prv,gov_prv_prv,
		    redistricted_prv_prv,comp_cq_prv_prv,
		   rain_day_prevs,rain_weekend_prevs
) 
                               
dose_prv=covs$dose_prv
vote_prv=covs$vote_prv 
dose_prv_prv=covs$dose_prv[rain_data$ndex]
vote_prv_prv=covs$vote_prv[rain_data$ndex]   

covs$rain_day_prev=rain_day_prev
covs$rain_weekend_prev=rain_weekend_prev

rain_day_prev_prv=covs$rain_day_prev[rain_data$ndex]
rain_weekend_prev_prv=covs$rain_weekend_prev[rain_data$ndex]

covs$vote_prv_prv=vote_prv_prv
covs$dose_prv_prv=dose_prv_prv  
                     
covs$rain_day_prev_prv=rain_day_prev_prv        
covs$rain_weekend_prev_prv=rain_weekend_prev_prv

#######################
# balance regressions
#######################
  
placebo1_fe=lm(rain_day~
	  d_inc+
	  dist_prev + midterm + pres_party + black + construction + educ + 
	  minc + farmer + forborn + gvtwkr + manuf + pop + unempld + 
	  urban + retail + sos + gov + comp_cq + redistricted +  
	   d_inc_prv+dist_prev_prv+midterm_prv+pres_party_prv+black_prv+construction_prv+educ_prv+minc_prv+
	   farmer_prv+forborn_prv+gvtwkr_prv+manuf_prv+pop_prv+unempld_prv+urban_prv+retail_prv+sos_prv+gov_prv+
	   redistricted_prv+comp_cq_prv+
	 d_inc_prv_prv+dist_prev_prv_prv+midterm_prv_prv+pres_party_prv_prv+
	 black_prv_prv+construction_prv_prv+educ_prv_prv+minc_prv_prv+farmer_prv_prv+forborn_prv_prv+gvtwkr_prv_prv+
	 manuf_prv_prv+pop_prv_prv+unempld_prv_prv+urban_prv_prv+retail_prv_prv+
	 sos_prv_prv+gov_prv_prv+
	 redistricted_prv_prv+comp_cq_prv_prv+
	   dose_prv + dose_prv_prv + vote_prv + vote_prv_prv + 
	   rain_day_prevs+rain_day_prev,
	   subset=full,data=covs)

placebo2_fe=lm(rain_weekend~	   
	  d_inc+
	  dist_prev + midterm + pres_party + black + construction + educ + 
	  minc + farmer + forborn + gvtwkr + manuf + pop + unempld + 
	  urban + retail + sos + gov + comp_cq + redistricted + 
	   d_inc_prv+dist_prev_prv+midterm_prv+pres_party_prv+black_prv+construction_prv+educ_prv+minc_prv+
	   farmer_prv+forborn_prv+gvtwkr_prv+manuf_prv+pop_prv+unempld_prv+urban_prv+retail_prv+sos_prv+gov_prv+
	   redistricted_prv+comp_cq_prv+
	 d_inc_prv_prv+dist_prev_prv_prv+midterm_prv_prv+pres_party_prv_prv+
	 black_prv_prv+construction_prv_prv+educ_prv_prv+minc_prv_prv+farmer_prv_prv+forborn_prv_prv+gvtwkr_prv_prv+
	 manuf_prv_prv+pop_prv_prv+unempld_prv_prv+urban_prv_prv+retail_prv_prv+
	 sos_prv_prv+gov_prv_prv+
	 redistricted_prv_prv+comp_cq_prv_prv+
	   dose_prv + dose_prv_prv + vote_prv + vote_prv_prv + 
	   rain_weekend_prevs+rain_weekend_prev,
	   subset=full,data=covs)

placebo1_fe_sumcl=coeftest.cluster(covs[full,],placebo1_fe,cluster1='as.factor(fe_id_num)')
placebo2_fe_sumcl=coeftest.cluster(covs[full,],placebo2_fe,cluster1='as.factor(fe_id_num)')

save(placebo1_fe_sumcl,placebo2_fe_sumcl,
	file=paste('balance/figureI-',non.missings,'_',fes.type,'.Rdata',sep=''))	
rm(placebo1_fe_sumcl,placebo2_fe_sumcl)

	}
}

# END
     